//
//  UILabel+SuitedFont.m
//  
//
//  Created by 李贤立 on 16/9/18.
//  Copyright © 2016年 Capfer. All rights reserved.
//

#import "UILabel+SuitedFont.h"
@implementation UILabel (SuitedFont)
/**
 *  文字长度自适应宽度
 *
 *  @param imposeWidth 自适应的宽度
 */
- (void)suitedFontSizeWithImposeWidth:(CGFloat)imposeWidth {
    [self suitedFontSizeWithImposeWidth:imposeWidth minFontSize:0];
}
/**
 *  文字长度自适应宽度
 *
 *  @param imposeWidth 自适应的宽度
 *  @param minFontSize 最小字体
 */
- (void)suitedFontSizeWithImposeWidth:(CGFloat)imposeWidth minFontSize:(CGFloat)minFontSize {
    if (imposeWidth == 0) return;
    CGFloat fontSize = self.font.pointSize;
    CGSize size = [self.text sizeWithAttributes:@{NSFontAttributeName : self.font}];
    if (size.width <= imposeWidth) return;
    for (NSInteger i = 0; i < MAXFLOAT; i ++) {
        CGFloat width = [self.text sizeWithAttributes:@{NSFontAttributeName : [UIFont systemFontOfSize:fontSize]}].width;
        if (width > imposeWidth) {
            fontSize = fontSize - 0.1;
            if (fontSize <= minFontSize) break;
        } else {
            break;
        }
    }
    self.font = [UIFont systemFontOfSize:fontSize];
}
/**
 *  文字倾斜
 */
- (void)sloping {
    CGAffineTransform matrix = CGAffineTransformMake(1, 0, tanf(-15 * (CGFloat)M_PI / 180), 1, 0, 0);
    self.transform = matrix;
}
/**
 *  图片代替文本
 *
 *  image    图片
 */
- (void)textInstesdImage:(UIImage *)image {
    NSTextAttachment *attach = [[NSTextAttachment alloc] init];
    attach.image = image;
    attach.bounds = CGRectMake(0, 0, self.font.pointSize, self.font.pointSize);
    NSAttributedString *attachString = [NSAttributedString attributedStringWithAttachment:attach];
    self.attributedText = [attachString mutableCopy];
}
/**
 *  图片代替文本
 *
 *  image    图片
 *  fontSize 文字大小
 */
- (void)textInstesdImage:(UIImage *)image fontsize:(CGFloat)fontSize {
    NSTextAttachment *attach = [[NSTextAttachment alloc] init];
    attach.image = image;
    attach.bounds = CGRectMake(0, 0, fontSize, fontSize);
    NSAttributedString *attachString = [NSAttributedString attributedStringWithAttachment:attach];
    self.attributedText = [attachString mutableCopy];
}
- (NSAttributedString *)setupTextView
{
    // 富文本技术：
    // 1.图文混排
    // 2.随意修改文字样式
    //    self.textView.text = @"哈哈4365746875";
    //    self.textView.textColor = [UIColor blueColor];
    NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"哈哈123456"];
    // 设置“哈哈”为蓝色
    [string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0, 2)];
    [string addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:30] range:NSMakeRange(0, 2)];
    [string addAttribute:NSBackgroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 2)];
    
    // 设置“456”为红色
    [string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(6, 2)];
    [string addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:24] range:NSMakeRange(6, 2)];
    [string addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:NSMakeRange(6, 2)];
    
    // 创建图片图片附件
    NSTextAttachment *attach = [[NSTextAttachment alloc] init];
    attach.image = [UIImage imageNamed:@"ping"];
    attach.bounds = CGRectMake(0, 0, 15, 15);
    NSAttributedString *attachString = [NSAttributedString attributedStringWithAttachment:attach];
    
    
    [string appendAttributedString:attachString];
    
    [string appendAttributedString:[[NSAttributedString alloc] initWithString:@"789"]];
    
    return [string mutableCopy];
    
    /**
     iOS 6之前：CoreText,纯C语言,极其蛋疼
     iOS 6开始：NSAttributedString,简单易用
     iOS 7开始：TextKit,功能强大,简单易用
     */
}
@end
